The present invention relates to digital communications networks, and more particularly, to temporal coordination of when data is exchanged over the network and when a recipients execute commands sent over the network.
Factories are automated by controllers that are programmed, or configured, to operate specific machines or devices. These controllers may be general purpose, such as computers, numerical controls or programmable controllers; or they may be special purpose controllers, such as robot controllers, weld controllers or motor drives.
Each controller connects to the various sensing devices and operating devices on the machinery which it controls and it automates the operation of that machinery by inputting data from the sensing devices and outputing the appropriate data to the operating devices. This exchange of input and output ("I/O") data between the controller and the devices on the controlled machinery is often accomplished by direct connections between ports on the controller and each separate I/O device. However, when I/O devices are physically spread out over a large area, the wiring costs associated with such separate connections can become excessive.
One way to reduce wiring in such applications is to multiplex I/O data through a serial communications link. Such serial I/O links are commonly used to connect the centrally located controller to separate remote racks, or chassis, that are positioned adjacent to the I/O devices. Such "remote I/O systems" are disclosed, for example, in U.S. Pat. Nos. 4,404,651; 4,413,319; 4,809,217 and 4,750,150, where the controller carries out a continuous high speed scan of the I/O data associated with each remote rack and that data is conveyed through the serial communications link. It can be appreciated that such serial I/O links must promptly and reliably convey the I/O data, since that data is directly controlling operating devices on a machine that is operating in real time.
While a single controller may automate a machine, or a small group of machines, such "islands of automation" must be connected together to truly automate an entire factory. These latter connections are provided by industrial local area networks that enable each controller to send messages to other similar controllers in the factory over serial data links. There are a large number of such "peer-to-peer" communications networks known in the art, some of which are developed by standards committees like IEEE 802.3, IEEE 802.4, IEEE 802.5 and MAP; and others are developed by manufacturers of the controller like those disclosed in U.S. Pat. Nos. 4,319,338; 4,667,323 and 4,747,100. It can be appreciated that the nature of the peer-to-peer data conveyed on local area networks connecting controllers is different than I/O data conveyed on serial I/O links.
A recent trend in industrial control is the increasing use of smaller controllers in so-called "distributed processing." For example, rather than a single large controller linked to a set of remote I/O racks, an alternative architecture is a set of linked small controllers positioned about the factory in place of each remote I/O rack. In a distributed system it may be necessary to coordinate the exchange of data so that a group of these smaller controllers that are associated with a section of the factory will receive data at the same time. It may also be important that data from sensors connected to different controllers be sent over the network at about the same time to provide a "snap shot" of the entire manufacturing process at a given point in time.
A first class of data, such as I/O data, being exchanged is so time critical that it needs to be sent over the network every time that the station at which the data is generated get access to the network. A second class of data, such as production information, is not so time critical and need only be sent once a second, for example. Therefore, it is desirable to provide a mechanism by which the producer of the data is able to determine when the data is released for transmission over the network. Further since a given station may produce data having different degrees of importance, the transmission control mechanism should enable higher priority data to be sent before lower priority data regardless of the order in which the two classes of data were produced.
The host processor should be able to provide data to the transmission control mechanism and then release the data for transmission at the appropriate time. Thereafter the host processor should be relieved of all responsibility for transmitting the data over the network with that responsibility being assigned to the transmission control mechanism.